package cmd

import (
	"fmt"
	"github.com/spf13/cobra"
	"migration-tool/common"
	"migration-tool/schedule"
	"os"
)

var ShowRepoName string
var Import bool

func init() {
	rootCmd.AddCommand(showCmd)
	showCmd.PersistentFlags().StringVar(&ShowRepoName, "repo", "", "检查进度的仓库名，支持通配符，使用通配符时须加\"\"")
	showCmd.PersistentFlags().BoolVar(&Import, "import", false, "查看导入任务的进度")
}

var showCmd = &cobra.Command{
	Use:   "show [--config=filepath][--import]",
	Short: "执行仓库进度检查，仓库名支持通配符，默认检查导出进度",
	Run: func(cmd *cobra.Command, args []string) {
		if ConfigFilePath == "" {
			ConfigFilePath = common.GlobalDefaultConfigPath
		}

		// 默认查看导出任务的进度
		// 输出--import查看导入任务的进度
		coordinatorArgs := schedule.CoordinatorArgs{
			ConfigPath:  ConfigFilePath,
			Export:      !Import,
			UseProgress: true,
		}

		c, err := schedule.MakeCoordinator(coordinatorArgs)
		if err != nil {
			fmt.Println(err)
			os.Exit(1)
		}
		err = c.ShowProgress()
		if err != nil {
			if !Import {
				c.RecordLog("查看仓库[导出]任务完成情况时发生错误", err)
			} else {
				c.RecordLog("查看仓库[导入]任务完成情况时发生错误", err)
			}
		} else {
			if !Import {
				c.RecordLog("查看仓库[导出]任务完成情况执行完成", nil)
			} else {
				c.RecordLog("查看仓库[导入]任务完成情况执行完成", nil)
			}
		}
	},
}
